package dragon.social.core.QQ;

import dragon.social.core.QQ.api.QQApi;
import dragon.social.core.QQ.api.QQUserinfo;
import org.springframework.social.connect.ApiAdapter;
import org.springframework.social.connect.ConnectionValues;
import org.springframework.social.connect.UserProfile;

public class QQApiAdapter implements ApiAdapter<QQApi> {
    /**
     * 测试此api提供商的接口是否通的。这里简单点直接认为是true
     * @param api
     * @return
     */
    @Override
    public boolean test(QQApi api) {
        return true;
    }

    /**
     * 把服务提供商的信息设置为标准的connection信息
     * @param api
     * @param values
     */
    @Override
    public void setConnectionValues(QQApi api, ConnectionValues values) {
        QQUserinfo qqUser = api.getQQUser();
        if(qqUser != null){
            //昵称
            values.setDisplayName(qqUser.getNickname());
            //头像
            values.setImageUrl(qqUser.getFigureurl_1());
            //个人主页
            values.setProfileUrl(null);
            //openId
            values.setProviderUserId(qqUser.getOpenId());
        }

    }

    /**
     * Implements Connection#fetchUserProfile() for connections to the given API.
     * Should never return null.
     * If the provider's API does not expose user profile data, this method should return {@link UserProfile#EMPTY}.
     */
    @Override
    public UserProfile fetchUserProfile(QQApi api) {
        return null;
    }

    /**
     * 更改状态，例如微博可以发个消息更新一下（imooc介绍），QQ用不上
     * @param api
     * @param message
     */
    @Override
    public void updateStatus(QQApi api, String message) {

    }
}
